package top.shiyiri.dao;

import top.shiyiri.bean.Customer;

import java.sql.Connection;
import java.sql.Date;
import java.util.List;

/**
 * @author Aunean
 * @date 2022/1/19 21:27
 */
/*
此接口用于规范针对于 customers 表的常用操作
 */
public interface CustomerDao {

    /**
     * @Description 将customer对象添加到数据库中
     * @param conn
     * @param customer
     */
    void insertCustomer(Connection conn, Customer customer);

    /**
     * @Description 针对指定的id，删除表中的一条记录
     * @param conn
     * @param id
     */
    void deleteById(Connection conn, int id);

    /**
     * @Description 针对内存中的customer对象，去修改数据表中指定的记录
     * @param conn
     * @param customer
     */
    void updateById(Connection conn, Customer customer);

    /**
     * @Description 针对指定的id查询得到对应的Customer对象
     * @param conn
     * @param id
     * @return
     */
    Customer getCustomerById(Connection conn, int id);

    /**
     * @Description 查询表中所有记录构成的集合
     * @param conn
     * @return
     */
    List<Customer> getAllCustomerList(Connection conn);

    /**
     * @Description 返回数据表中数据的条目数
     * @param conn
     * @return
     */
    Long getCount(Connection conn);

    /**
     * @Description 返回数据表中最大的生日
     * @param conn
     * @return
     */
    Date getMaxBirth(Connection conn);
}
